﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Lab2.IVAN.NumberToWords
{
    class CaseTrying
    {
        static void Maiiin(string[] args)
        {
            string s = Console.ReadLine();
            //string s = "24";
            int i = s.Length;
        
            int number = Convert.ToInt32(s);
            
            
            string str = "";
            switch (i)
            {
                case 1:
                    { 
                    // методж от 0 до 9
                        str = method0to9(number);
                      Console.WriteLine ( str);             
                    }
                    break;
                case 2:
                    {
                        if (number < 20)
                        {  // метод от 10 до 19 
                          str =   method10to19(number );
                          Console.WriteLine(str);
                        }
                        else //  метод десятков + от 0до 9
                        {
                            int numberDes = number / 10;
                            int numberEd = number % 10;
                            str = methodDesyatkov(numberDes) + "" + method1to9(numberEd); 
                            Console.WriteLine(str);
                        }
                    }
                    break;
                case 3:
                    {
                        int numberSotni = (number / 100) * 100;
                        if (number - numberSotni < 10 && number - numberSotni != 0)
                        {
                            str = sotni(number / 100) + "" + method0to9(number%10);
                            Console.WriteLine(str);
                        }
                        else if (number - numberSotni < 20 && number - numberSotni >= 10)
                        {
                         // метод от 10 до 19 
                            str = sotni(number / 100) + "" + method10to19(number/10);
                            Console.WriteLine(str);
                        
                        }else
                        //  метод десятков + от 0до 9
                        {
                            int numberDes = number - (number/100)*100;
                            numberDes = numberDes / 10;
                            int numberEd = number % 10;
                            str = sotni(number / 100) + "" + methodDesyatkov(numberDes) + "" + method1to9(numberEd);
                            Console.WriteLine(str);
                        }
              //          метод сотен и + метод от 10 до 19 и метод десятков + от 0до 9
                    }
                    break;
                case 4:
                    {
                        int numberTys = number / 1000;
                        number = number - numberTys * 1000;
                       str = method1to9T(numberTys);

                              int numberSotni = (number / 100) * 100;
                        if (number - numberSotni < 10 && number - numberSotni != 0)
                        {
                            str = str + sotni(number / 100) + "" + method0to9(number%10);
                            Console.WriteLine(str);
                        }
                        else if (number - numberSotni < 20 && number - numberSotni >= 10)
                        {
                         // метод от 10 до 19 
                           str = str + sotni(number / 100) + "" + method10to19(number/10);
                            Console.WriteLine(str);
                        
                        }else
                        //  метод десятков + от 0до 9
                        {
                            int numberDes = number - (number/100)*100;
                            numberDes = numberDes / 10;
                            int numberEd = number % 10;
                             str = str + sotni(number / 100) + "" + methodDesyatkov(numberDes) + "" + method1to9(numberEd);
                            Console.WriteLine(str);
                        }
             ///       метод от 1 до 9 и    метод сотен и + метод от 10 до 19 и метод десятков + от 0до 9
                    }
                    break;
                case 5:
                    {
                      
                        int numberDesTys = number % 100;
               
                        if (numberDesTys < 20)
                        {  // метод от 10 до 19 
                            str = method10to19(numberDesTys);
                          Console.WriteLine(str);
                        }
                        else //  метод десятков + от 0до 9
                        {
                            int numberDes = number / 10;
                            int numberEd = number % 10;
                            str = methodDesyatkov(numberDes) + "" + method1to9(numberEd); 
                            Console.WriteLine(str);
                        }

                        int numberSotni = (number / 100) * 100;
                        if (number - numberSotni < 10 && number - numberSotni != 0)
                        {
                            str = str + sotni(number / 100) + "" + method0to9(number % 10);
                            Console.WriteLine(str);
                        }
                        else if (number - numberSotni < 20 && number - numberSotni >= 10)
                        {
                            // метод от 10 до 19 
                            str = str + sotni(number / 100) + "" + method10to19(number / 10);
                            Console.WriteLine(str);

                        }
                        else
                        //  метод десятков + от 0до 9
                        {
                            int numberDes = number - (number / 100) * 100;
                            numberDes = numberDes / 10;
                            int numberEd = number % 10;
                            str = str + sotni(number / 100) + "" + methodDesyatkov(numberDes) + "" + method1to9(numberEd);
                            Console.WriteLine(str);
                        }
               /// ( метод от 10 до 19 и метод десятков + от 0до 9 ) и   метод сотен и + метод от 10 до 19 и метод десятков + от 0до 9
                    }
                    break;
                case 6:
                    { 
                //  (((( метод сотен и + метод от 10 до 19 и метод десятков + от 0до 9 ))))и (((( метод сотен и + метод от 10 до 19 и метод десятков + от 0до 9))))))
                    }
                    break;
            }





            Console.ReadKey();
        }
        /////////////////////////////////////////////////////
        static string method0to9(int i)
        {
            string str = "";
            switch (i)
            {
                case 0:
                    str = (" ноль ");
                    break;
                case 1:
                    str = (" один ");
                    break;
                case 2:
                    str = (" два ");
                    break;
                case 3:
                    str = (" три ");
                    break;
                case 4:
                    str = (" четыре ");
                    break;
                case 5:
                    str = (" пять ");
                    break;
                case 6:
                    str = (" шесть ");
                    break;
                case 7:
                    str = (" семь ");
                    break;
                case 8:
                    str = (" восемь ");
                    break;
                case 9:
                    str = (" девять ");
                    break;
            }
            return str;
        }
        //////////////////////////////////////////////////
        /////////////////////////////////////////////////////
        static string method1to9T(int i)
        {
            string str = "";
            switch (i)
            {
            
                case 1:
                    str = (" одина тысячя ");
                    break;
                case 2:
                    str = (" две тысячи ");
                    break;
                case 3:
                    str = (" три тысячи ");
                    break;
                case 4:
                    str = (" четыре тысячи  ");
                    break;
                case 5:
                    str = (" пять тысяч ");
                    break;
                case 6:
                    str = (" шесть  тысяч ");
                    break;
                case 7:
                    str = (" семь  тысяч ");
                    break;
                case 8:
                    str = (" восемь  тысяч ");
                    break;
                case 9:
                    str = (" девять  тысяч ");
                    break;
            }
            return str;
        }
        //////////////////////////////////////////////////
        static string method10to19(int i)
        {

            string str = "";
            switch (i)
            {

               
                case 10:
                    str = (" десять ");
                    break;
                case 11:
                    str = (" одиннадцать ");
                    break;
                case 12:
                    str = (" двенадцать ");
                    break;
                case 13:
                    str = (" тринадцать ");
                    break;
                case 14:
                    str = (" четырнадцать ");
                    break;
                case 15:
                    str = (" пятнадцать ");
                    break;
                case 16:
                    str = (" шестнадцать ");
                    break;
                case 17:
                    str = (" семнадцать ");
                    break;
                case 18:
                    str = (" восемнадцать ");
                    break;
                case 19:
                    str = (" девятнадцать ");
                    break;
            }
            return str;

        }//////////////////////////////////////////////////////////
        static string method1to9(int i)
        {
            string str = "";
            switch (i)
            {
             
                case 1:
                    str = (" один ");
                    break;
                case 2:
                    str = (" два ");
                    break;
                case 3:
                    str = (" три ");
                    break;
                case 4:
                    str = (" четыре ");
                    break;
                case 5:
                    str = (" пять ");
                    break;
                case 6:
                    str = (" шесть ");
                    break;
                case 7:
                    str = (" семь ");
                    break;
                case 8:
                    str = (" восемь ");
                    break;
                case 9:
                    str = (" девять ");
                    break;
            }
            return str;
        }
        //////////////////////////////////////////////////
        static string methodDesyatkov(int i)
        {
         
            string str = "";
            switch (i)
            {
                case 2:
                    str = (" двадцать " );
                    break;
                case 3:
                    str = (" тридцать " );
                    break;
                case 4:
                    str = (" сорок ");
                    break;
                case 5:
                    str = (" пятдесят " );
                    break;
                case 6:
                    str = (" шестдесят " );
                    break;
                case 7:
                    str = (" семдесят ");
                    break;
                case 8:
                    str = (" восемдесят " );
                    break;
                case 9:
                    str = (" девяносто " );
                    break;

            }
            return str;

        }
        /////////////////////////////////////////////////////////////////////////////
        static string sotni(int i)
        {
            string str = "";
            switch (i)
            {
               
                case 1:
                    str = (" сто ");
                    break;
                case 2:
                    str = (" двести ");
                    break;
                case 3:
                    str = (" триста ");
                    break;
                case 4:
                    str = (" четыреста ");
                    break;
                case 5:
                    str = (" пятсот ");
                    break;
                case 6:
                    str = (" шестсот ");
                    break;
                case 7:
                    str = (" семсот ");
                    break;
                case 8:
                    str = (" восемсот ");
                    break;
                case 9:
                    str = (" девятсот ");
                    break;


            }
            return str;
        }//////////////////////////////////////////////////////////////////
    }
}
